
/* A Bison parser, made by GNU Bison 2.4.1.  */

/* Skeleton interface for Bison's Yacc-like parsers in C
   
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.
   
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.
   
   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */


/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     TOKEN = 258,
     IDEN = 259,
     CONSTANT = 260,
     TYPENAME = 261,
     TYPENAME_FUNCTION = 262,
     TEMPLATE_NAME = 263,
     TEMPLATE_NAME_EXPR = 264,
     THIS_CLASSNAME = 265,
     FLOAT = 266,
     DOUBLE = 267,
     UNSIGNED = 268,
     SIGNED = 269,
     INT = 270,
     INT64 = 271,
     SHORT = 272,
     LONG = 273,
     CHAR = 274,
     VOID = 275,
     BOOL = 276,
     TYPEDEF = 277,
     ENUM = 278,
     OPERATOR = 279,
     GOTO = 280,
     STATIC_CAST = 281,
     CONST_CAST = 282,
     DYNAMIC_CAST = 283,
     REINTERPRET_CAST = 284,
     STRUCT_X = 285,
     CLASS_X = 286,
     STRUCT_Y = 287,
     CLASS_Y = 288,
     UNION_Y = 289,
     IF = 290,
     ELSE = 291,
     WHILE = 292,
     DO = 293,
     FOR = 294,
     SWITCH = 295,
     CASE = 296,
     RETURN = 297,
     CONTINUE = 298,
     BREAK = 299,
     DEFAULT = 300,
     NAMESPACE = 301,
     USING = 302,
     TRY = 303,
     CATCH = 304,
     THROW = 305,
     TEMPLATE = 306,
     EXTERN = 307,
     THREEDOT = 308,
     TYPEOF = 309,
     EXPLICIT = 310,
     FRIEND = 311,
     LAMBDA = 312,
     FAKE_INIT_LIST = 313,
     CONST = 314,
     STATIC = 315,
     STDCALL = 316,
     API = 317,
     VIRTUAL = 318,
     PRIVATE = 319,
     PROTECTED = 320,
     PUBLIC = 321,
     CLASS = 322,
     STRUCT = 323,
     UNION = 324,
     COMMA = 325,
     XOR_A = 326,
     BOR_A = 327,
     BAND_A = 328,
     SHR_A = 329,
     SHL_A = 330,
     MINUS_A = 331,
     ADD_A = 332,
     MOD_A = 333,
     DIV_A = 334,
     MUL_A = 335,
     ASSIGN = 336,
     ARITH_IF = 337,
     LOG_OR = 338,
     LOG_AND = 339,
     BIN_OR = 340,
     BIN_XOR = 341,
     BIN_AND = 342,
     NOT_EQUAL = 343,
     EQUAL = 344,
     GEQ = 345,
     GREATER = 346,
     LEQ = 347,
     LESS_THAN = 348,
     RSHIFT = 349,
     LSHIFT = 350,
     MINUS = 351,
     PLUS = 352,
     MODULO = 353,
     DIVIDE = 354,
     STAR = 355,
     MEMBER_DOT = 356,
     MEMBER_ARROW = 357,
     SIZEOF = 358,
     DECR = 359,
     INCR = 360,
     BIN_NOT = 361,
     LOG_NOT = 362,
     UMINUS = 363,
     UPLUS = 364,
     ADDR = 365,
     DEREF = 366,
     TYPECAST = 367,
     DELETE = 368,
     NEW = 369,
     DOT = 370,
     ARROW = 371,
     ARRAY = 372,
     FUN_CALL = 373,
     TYPE_CONSTRUCT = 374,
     BINARY_SCOPE = 375,
     UNARY_SCOPE = 376
   };
#endif
/* Tokens.  */
#define TOKEN 258
#define IDEN 259
#define CONSTANT 260
#define TYPENAME 261
#define TYPENAME_FUNCTION 262
#define TEMPLATE_NAME 263
#define TEMPLATE_NAME_EXPR 264
#define THIS_CLASSNAME 265
#define FLOAT 266
#define DOUBLE 267
#define UNSIGNED 268
#define SIGNED 269
#define INT 270
#define INT64 271
#define SHORT 272
#define LONG 273
#define CHAR 274
#define VOID 275
#define BOOL 276
#define TYPEDEF 277
#define ENUM 278
#define OPERATOR 279
#define GOTO 280
#define STATIC_CAST 281
#define CONST_CAST 282
#define DYNAMIC_CAST 283
#define REINTERPRET_CAST 284
#define STRUCT_X 285
#define CLASS_X 286
#define STRUCT_Y 287
#define CLASS_Y 288
#define UNION_Y 289
#define IF 290
#define ELSE 291
#define WHILE 292
#define DO 293
#define FOR 294
#define SWITCH 295
#define CASE 296
#define RETURN 297
#define CONTINUE 298
#define BREAK 299
#define DEFAULT 300
#define NAMESPACE 301
#define USING 302
#define TRY 303
#define CATCH 304
#define THROW 305
#define TEMPLATE 306
#define EXTERN 307
#define THREEDOT 308
#define TYPEOF 309
#define EXPLICIT 310
#define FRIEND 311
#define LAMBDA 312
#define FAKE_INIT_LIST 313
#define CONST 314
#define STATIC 315
#define STDCALL 316
#define API 317
#define VIRTUAL 318
#define PRIVATE 319
#define PROTECTED 320
#define PUBLIC 321
#define CLASS 322
#define STRUCT 323
#define UNION 324
#define COMMA 325
#define XOR_A 326
#define BOR_A 327
#define BAND_A 328
#define SHR_A 329
#define SHL_A 330
#define MINUS_A 331
#define ADD_A 332
#define MOD_A 333
#define DIV_A 334
#define MUL_A 335
#define ASSIGN 336
#define ARITH_IF 337
#define LOG_OR 338
#define LOG_AND 339
#define BIN_OR 340
#define BIN_XOR 341
#define BIN_AND 342
#define NOT_EQUAL 343
#define EQUAL 344
#define GEQ 345
#define GREATER 346
#define LEQ 347
#define LESS_THAN 348
#define RSHIFT 349
#define LSHIFT 350
#define MINUS 351
#define PLUS 352
#define MODULO 353
#define DIVIDE 354
#define STAR 355
#define MEMBER_DOT 356
#define MEMBER_ARROW 357
#define SIZEOF 358
#define DECR 359
#define INCR 360
#define BIN_NOT 361
#define LOG_NOT 362
#define UMINUS 363
#define UPLUS 364
#define ADDR 365
#define DEREF 366
#define TYPECAST 367
#define DELETE 368
#define NEW 369
#define DOT 370
#define ARROW 371
#define ARRAY 372
#define FUN_CALL 373
#define TYPE_CONSTRUCT 374
#define BINARY_SCOPE 375
#define UNARY_SCOPE 376




#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{

/* Line 1676 of yacc.c  */
#line 98 "parser.y"

  int    val;
  long long    val64;
  long   ctype;
  char*  str;
  Entry* entry;
  Expr*  expression;
  ExprList *elist;
  Class *classptr;
  TypeList *typelist;



/* Line 1676 of yacc.c  */
#line 308 "y.tab.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif

extern YYSTYPE yylval;


